import request from '@/utils/request'

// 单表查询任务安排列表
export function listArrangement(query) {
  return request({
    url: '/system/arrangement/list',
    method: 'get',
    params: {
      ...query,
      pageNum: query.pageNum || 1,
      pageSize: query.pageSize || 10
    }
  })
}

// 多表联查任务安排列表
export function listArrangementJoin(params) {
  return request({
    url: '/system/arrangement/joinList',
    method: 'get',
    params: {
      ...params,
      pageNum: params.pageNum || 1,
      pageSize: params.pageSize || 10
    }
  })
}

// 查询任务安排详细（使用联查接口）
export function getArrangement(id) {
  return request({
    url: '/system/arrangement/detail/' + id,  // 修改为联查接口
    method: 'get'
  })
}

// 获取任务安排详情（兼容旧版本）
export function getArrangementDetail(id) {
  return getArrangement(id)  // 直接调用已存在的接口
}

// 新增任务安排
export function addArrangement(data) {
  return request({
    url: '/system/arrangement',
    method: 'post',
    data: data
  })
}

// 修改任务安排
export function updateArrangement(data) {
  return request({
    url: '/system/arrangement',
    method: 'put',
    data: data
  })
}

// 删除任务安排
export function delArrangement(id) {
  return request({
    url: '/system/arrangement/' + id,
    method: 'delete'
  })
}

// 导出任务安排列表
export function exportArrangement(params) {
  return request({
    url: '/system/arrangement/export',
    method: 'get',
    params: params,
    responseType: 'blob'
  })
}

// 执行任务安排
export function executeArrangement(data) {
  return request({
    url: '/system/arrangement/execute',
    method: 'post',
    data: data
  })
}

// 取消任务安排
export function cancelArrangement(data) {
  return request({
    url: '/system/arrangement/cancel',
    method: 'post',
    data: data
  })
}

// 改期任务安排
export function rescheduleArrangement(data) {
  return request({
    url: '/system/arrangement/reschedule',
    method: 'post',
    data: data
  })
}

// PC端今日待执行任务列表
export function getPcTodayPendingTasks(params) {
  return request({
    url: '/system/arrangement/pc/today-pending',
    method: 'get',
    params: {
      ...params,
      pageNum: params.pageNum || 1,
      pageSize: params.pageSize || 10
    }
  })
}